Skip to content

(CHORE)[EX-3143] Upgrade protoc-cpp with protoc 1.15#186

Closed
Michael Gunawan (scmichaelg) wants to merge 6 commits intomainfrom
EX-3143-protoc-cpp-updates
Closed

(CHORE)[EX-3143] Upgrade protoc-cpp with protoc 1.15#186
Michael Gunawan (scmichaelg) wants to merge 6 commits intomainfrom
EX-3143-protoc-cpp-updates

Conversation

@scmichaelg
Copy link
Copy Markdown

@scmichaelg Michael Gunawan (scmichaelg) commented Mar 28, 2026

Summary

Upgrades the base protoc image to Alpine 3.21 with buf 1.66.0, updates protoc-cpp to use the new base image with s12-proto 1.38.0, and bumps protoc-go to Go 1.24.0.

EX-3143

Problem description

The protoc Docker images were running on outdated Alpine and dependency versions. The protoc-cpp build was also failing because the wire_options.pb.cc/h files generated from an older protobuf version were incompatible with the newer protobuf libraries in Alpine 3.21. This PR upgrades all base images and fixes the protoc-cpp build by regenerating the protobuf sources at build time and adding the required abseil-cpp-dev and pkgconf dependencies.

Changes

  • protoc (1.14.2 → 1.15.0): Alpine 3.15 → 3.21, buf 1.8.0 → 1.66.0, explicit community repo for protoc/grpc packages
  • protoc-cpp (1.12.4 → 1.13.0): Base image updated to protoc 1.15.0, s12-proto 1.36.0 → 1.38.0, added abseil-cpp-dev/pkgconf build deps, regenerate wire_options.pb.cc/h during build
  • protoc-go (3.25.6 → 3.26.0): Go 1.23.0 → 1.24.0

Pros/cons of approach implemented

  • Pro: Regenerating wire_options.pb.cc/h at build time ensures compatibility with whatever protobuf version is in the base image, avoiding future breakage on upgrades.
  • Con: Adds a protoc invocation to the build script, slightly increasing build time.

Checklist

  • Is this PR a reasonable size?

  • List deployment sequence with all relevant PRs.

    • protoc image must be built and published first (protoc-cpp depends on it)
    • Then protoc-cpp and protoc-go can be built independently
  • For breaking changes: I have confirmed that other repos are not
    affected, or I have planned a deployment sequence to address any impact.


Code Review Guidelines for Reviewers

  • Try to review in a timely manner. Opinions/nitpicks should not be
    blockers. Pair on a call for non-trivial feedback.
  • Overall design and approach should follow established patterns. Don't try
    to make the PR perfect.
  • Try to identify edge cases, race conditions, over-engineering, lack of
    test coverage and complexity.
  • If you don't feel qualified to review the code, pass it on to someone
    who is.

- Alpine 3.15 → 3.21
- buf 1.8.0 → 1.66.0
- protoc/grpc from Alpine 3.21 community repo (protobuf v24.4, grpc 1.62.1)

Split from upgrade/alpine-3.21-protobuf-v24 to unblock protoc-cpp build.
protoc-gen-workato@latest now requires go >= 1.24.0.
Bump protoc-go version to 3.26.0.
- protoc base image: Alpine 3.15 -> 3.21, buf 1.8.0 -> 1.66.0
  - protoc 3.18.1 -> 24.4, grpc 1.62.1 (from community repo)
- protoc-cpp image: base protoc 1.14.2 -> 1.15.0
  - Add abseil-cpp-dev and pkgconf build deps (required by protobuf v22+)
  - Regenerate wire_options.pb.cc/h during build to match container protobuf
  - Bump version to 1.13.0
- Fix legacy ENV format warning in Dockerfile

Note: CRUX_CLIENT_RELEASE needs updating to a new s12-proto tag
that includes the protobuf v24 string_view compatibility changes
(see SafetyCulture/s12-proto PR upgrade/protobuf-v33-compatibility).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@scmichaelg Michael Gunawan (scmichaelg) marked this pull request as ready for review March 28, 2026 08:55
@scmichaelg Michael Gunawan (scmichaelg) requested a review from a team as a code owner March 28, 2026 08:55
@scmichaelg Michael Gunawan (scmichaelg) changed the base branch from main to EX-3143/upgrade-protoc-base-1.15.0 March 28, 2026 08:56
@scmichaelg Michael Gunawan (scmichaelg) changed the title EX-3143: Upgrade protoc, protoc-cpp, and protoc-go images EX-3143: Upgrade protoc-cpp with protoc 1.15 Mar 28, 2026
@scmichaelg Michael Gunawan (scmichaelg) changed the title EX-3143: Upgrade protoc-cpp with protoc 1.15 (CHORE)[EX-3143] Upgrade protoc-cpp with protoc 1.15 Mar 28, 2026
@scmichaelg Michael Gunawan (scmichaelg) changed the base branch from EX-3143/upgrade-protoc-base-1.15.0 to main March 28, 2026 09:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants